package com.yfp.client.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yfp.client.domain.Client;
import com.yfp.client.domain.ClientHistoryInfo;
import com.yfp.client.domain.vo.ClientHealthGuidePageVO;
import com.yfp.client.domain.vo.ClientHistoryInfoBodyVO;
import com.yfp.client.domain.vo.ClientHistoryInfoVO;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 *
 * @description 针对表【client_history_info(客户历史信息表)】的数据库操作Service
 * @createDate 2025-02-12 10:04:35
 */
public interface ClientHistoryInfoService extends IService<ClientHistoryInfo> {

    /**
     * 身体数据-查询记录列表
     * 查询客户历史信息列表
     *
     * @return
     */
    List<ClientHistoryInfoVO> getClientHistoryInfoList();

    /**
     * 身体数据-查询记录详情
     * 查询客户历史信息详情
     *
     * @return
     */
    ClientHistoryInfoBodyVO getClientHistoryInfo();

    /**
     * 计算BMI
     *
     * @param height
     * @param weight
     * @return
     */
    BigDecimal calculateBMI(BigDecimal height, BigDecimal weight);

    /**
     * 保存客户历史信息
     *
     * @param client
     */
    void saveClientHistoryInfo(Client client);

    /**
     * 查询客户历史信息,最近一条
     *
     * @param clientId
     * @param endTime
     * @return
     */
    ClientHistoryInfo lastClientHealthLog(String clientId, Date endTime);

    /**
     * 保存客户历史信息
     *
     * @param clientNew
     */
    void saveClientHistoryInfoCompareOld(Client clientNew);

    /**
     * 查询客户历史信息，首条
     *
     * @param clientId
     * @param startTime
     * @return
     */
    ClientHistoryInfo firstClientHealthLog(String clientId, Date startTime);

    /**
     * 引导页
     *
     * @return
     */
    ClientHealthGuidePageVO guidePage();
}
